package org.jeecg.modules.dock.entity.dto.request;

import cn.hutool.core.date.DatePattern;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 原卷UB单发货入参实体
 *
 * @author zhoutong
 */
@Data
public class OriginalVolumeUbOrderRequestDTO extends SapBaseRequestDTO {

    // UB转储单号
    @JsonProperty("ebeln")
    private String ubOrderNumber;

    // UB行项目
    @JsonProperty("ebelp")
    private Integer ubLineProject;

    // 发货凭证
    @JsonProperty("mblnr")
    private String shippingVoucher;

    // 发货凭证项目
    @JsonProperty("mblpo")
    private Integer shippingVoucherProject;

    // 发货日期
    @JsonProperty("budat")
    @JsonFormat(pattern = DatePattern.NORM_DATE_PATTERN, timezone = "GMT+8")
    @DateTimeFormat(pattern = DatePattern.NORM_DATE_PATTERN)
    private Date issuanceDate;

    // 物料
    @JsonProperty("matnr")
    private String materialCode;

    // 批次号
    @JsonProperty("charg")
    private String batchCode;

    // 工厂
    @JsonProperty("werks")
    private String factory;

    // 数量
    @JsonProperty("menge")
    private BigDecimal quantity;

    // 计量单位
    @JsonProperty("meins")
    private String unit;

    // 出发库位
    @JsonProperty("lgort1")
    private String fromStore;

    // 接收库位
    @JsonProperty("lgort2")
    private String toStore;

    // 硅钢入库日期
    @JsonProperty("z_gg02")
    private String storageDateOfSiliconSteel;

    // 钢卷号
    @JsonProperty("z_gg03")
    private String steelCoilNumber;

    // 钢卷宽度
    @JsonProperty("z_gg04")
    private BigDecimal steelWidth;

    // 钢卷长度
    @JsonProperty("z_gg05")
    private BigDecimal steellength;

    // 单位厚度
    @JsonProperty("z_gg06")
    private BigDecimal unitThickness;

    // 委外加工订单
    @JsonProperty("ebeln2")
    private String outsourcingOrders;

    // 备注
    @JsonProperty("z_gg20")
    private String remark;

}
